/**
* Classes implimenting this interface should have constructors which take a Dictionary,
* a max number of guesses, both, or neither. In the case of neither it should not check
* guesses against a dictionary and should default to 20 guesses. Alternatively provide
* a method allowing the dictonary to be changed at any time.
*  
* 
* Be sure to use the RESOLVE-style JavaDoc tags when documenting the interface and class.
*	
*/
public interface PlayerSuggestions {
	
	/**
	 * Compares other players guess to this players secret word.
	 * @param word the word being guessed.
	 * @return number of similar characters in the word. 
	 */
	int guess(String word);
	
	/**
	 * Sets the players secret word. If possible it is checked against the dictionary.
	 * A custom exception should be thrown if the word isn't in the dictionary. 
	 * 
	 * @param word the word being set
	 */
	void setWord(String word);

	/**
	 * returns the current score of a player.
	 * @return int the amount of points a player has
	 */
	int getScore();
	
	/**
	 * Awards the player one win and adds the given number of points to his score.
	 * Should reset the guesses array.
	 * 
	 * @param points the number of points to add to the score. Must be positive.
	 * @return the number of wins this player has.
	 * 
	 */
	int win(int points);
	
	/**
	 * Gives the player the points but not the win. Should reset the guesses array.
	 * 
	 * @param points the number of points to add to the score. Must be positive.
	 * @return the number of wins this player has.
	 */
	int lose(int points);
	
	/**
	 * Returns a list of the guesses made by an OPPONENT against this player.
	 * I'm not sure that this method should take this form or even if it is 
	 * necessary at all. If it stays like this be sure that it is immutable / returns a
	 * reference to a COPY of the String[] array inside the class.
	 * 
	 * @return a String array of previous guesses
	 */
	String[] previousGuesses();
}
